A Verifiable SSA Program Representation for Aggressive Compiler Optimization Extended

نویسندگان

  • Vijay S. Menon
  • Neal Glew
  • Brian R. Murphy
  • Andrew McCreight
  • Tatiana Shpeisman
  • Ali-Reza Adl-Tabatabai
  • Leaf Petersen
چکیده

We present a verifiable low-level program representation to embed, propagate, and preserve safety information in high performance compilers for safe languages such as Java and C#. Our representation precisely encodes safety information via static single-assignment (SSA) [11, 3] proof variables that are first-class constructs in the program. We argue that our representation allows a compiler to both (1) express aggressively optimized machine-independent code and (2) leverage existing compiler infrastructure to preserve safety information during optimization. We demonstrate that this approach supports standard compiler optimizations, requires minimal changes to the implementation of those optimizations, and does not artificially impede those optimizations to preserve safety. We also describe a simple type system that formalizes type safety in an SSA-style control-flow graph program representation. Through the types of proof variables, our system enables compositional verification of memory safety in optimized code. Finally, we discuss experiences integrating this representation into the machine-independent global optimizer of StarJIT, a high-performance just-in-time compiler that performs aggressive control-flow, data-flow, and algebraic optimizations and is competitive with top production systems.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Efficient online optimization by utilizing offline analysis and the safeTSA representation

Conventional mobile-code representations, e.g. Java bytecode, provide machine-independence and type-safety, but do so at the expense of performance. This performance hit can be taken in the form of decreased throughput or in increased latency. SafeTSA was designed to reduce this performance hit, especially when producing high-quality optimized machine code. It does this by utilizing SSA form an...

متن کامل

Extended SSA With Factored Use-Def Chains to Support Optimization and Parallelism

This paper describes our implementation of the Static Single Assignment (SSA) form of intermediate program representation in our parallelizing Fortran 90 compiler, Nascent. Although the traditional SSA form algorithm renames variables uniquely at every deenition point, it is not practical to add new names to the symbol table at all assignments. Thus, most implementations actually provide defuse...

متن کامل

The Hot Path SSA Form: Extending the Static Single Assignment Form for Speculative Optimizations

The Static Single Assignment (SSA) form has been an eminent contribution towards analyzing programs for compiler optimizations. It has been a able to the design of simpler algorithms for existing optimizations, and has facilitated the development of new ones. However, speculative optimizations optimizations targeted towards speeding-up the common cases of a program have not been fortunate enoug...

متن کامل

A Formally Verified SSA-Based Middle-End - Static Single Assignment Meets CompCert

CompCert is a formally verified compiler that generates compact and efficient PowerPC, ARM and x86 code for a large and realistic subset of the C language. However, CompCert foregoes using Static Single Assignment (SSA), an intermediate representation that allows for writing simpler and faster optimizers, and is used by many compilers. In fact, it has remained an open problem to verify formally...

متن کامل

Flattening tuples in an SSA intermediate representation

For functional programs, unboxing aggregate data structures such as tuples removes memory indirections and frees dead components of the decoupled structures. To explore the consequences of such optimizations in a whole-program compiler, this paper presents a tuple flattening transformation and a framework that allows the formal study and comparison of different flattening schemes. We present ou...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2005